package com.finalcial.dao;

import java.util.Date;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

/**
 * 对应申请表明细--包括差旅明细和其他明细
 * @author Administrator
 *
 */
public interface DetailedDao {


	/**
	 * 国内差旅申请差旅明细--查询规定费用并且作比较
	 * @param userId 用户ID（session）
	 * @return （伙食补贴费）金额、（城市间交通费）金额、（市内交通费）金额、（住宿费）金额、（其他费用）金额
	 */
	public List<Map<String, Object>> getFoodSalary(@Param("userId")Integer userId);

	/**
	 * 申请差旅明细--查询预算责任中心
	 * @param userId 用户ID(session)
	 * @return 部门名称
	 */
	public String getUserDepartmentName(@Param("userId")Integer userId);
	

	/**
	 * 申请差旅明细--查询记账成本中心
	 * @param userId 用户Id(接收人Id)
	 * @return 部门名称
	 */
/*	public String getRecipientDepartmentName(@Param("userId")Integer userId);
	*/
	/*国内差旅申请差旅明细--差旅表
	已知参数：用户ID、报销ID
	增加内容：用户ID、报销ID、出差开始日期、出差结束日期、出发地、目的地、交通工具、伙食补贴费、城市间交通费、市内交通费、住宿费、进项税、其他费用*/
	/**
	 * 
	 * @param userId 用户ID
	 * @param reimbursementId 报销ID
	 * @param businessTravelStartDate 出差开始日期
	 * @param businessTravelEndDate 出差结束日期
	 * @param businessTravelStartSection 出发地
	 * @param businessTravelEndSection 目的地
	 * @param vehicleName 交通工具
	 * @param foodCost 伙食补贴费
	 * @param cityTrafficExpense 城市间交通费
	 * @param provinceTrafficExpense  市内交通费
	 * @param hotelExpense 住宿费
	 * @param inputTax 进项税
	 * @param otherCost 其他费用
	 * @return
	 */
	public Integer insertBusinessTravel(@Param("userId")Integer userId,@Param("reimbursementId")String reimbursementId,@Param("businessTravelStartDate")Date businessTravelStartDate,@Param("businessTravelEndDate")Date businessTravelEndDate,@Param("businessTravelStartSection")String businessTravelStartSection,@Param("businessTravelEndSection")String businessTravelEndSection,@Param("vehicleName")String vehicleName,@Param("foodCost")Integer foodCost,@Param("cityTrafficExpense")Integer cityTrafficExpense,@Param("provinceTrafficExpense")Integer provinceTrafficExpense,@Param("hotelExpense")Integer hotelExpense,@Param("inputTax")Integer inputTax,@Param("otherCost")Integer otherCost);
	
	/*申请差旅明细--修改报销表(国内差旅只需要修改含税总金额，在其他里修改不含税总金额,并且isCostCapitalBudget不再国内差旅中)
	已知参数：报销ID
	修改内容：报销总金额（含税）,报销总金额，是否使用成本/资本预算*/
	public Integer updateReimbursement(@Param("reimbursementId")String reimbursementId,@Param("reimbursementMoneyOfTax")Integer reimbursementMoneyOfTax,@Param("reimbursementMoney")Integer reimbursementMoney,@Param("isCostCapitalBudget")String isCostCapitalBudget);
	
	/**
	 * 上传文件保存数据库
	 * @param invoiceName 票据名字
	 * @param invoiceTime 票据时间
	 * @param reimbursementId 报销ID
	 * @param invoiceTypeId 票据类型ID
	 * @param enclosureUrl 文件路径
	 * @param enclosureSize 文件大小
	 * @return
	 */
	public Integer insertUploadAndMsg(@Param("invoiceName")String invoiceName, @Param("invoiceTime")String invoiceTime, @Param("reimbursementId")String reimbursementId,
			@Param("invoiceTypeId")Integer invoiceTypeId, @Param("enclosureUrl")String enclosureUrl, @Param("enclosureSize")String enclosureSize);

}
